package com.hyt.it.ogt.kq.common.gov.constant.examsys.obt;

import lombok.Getter;

/**
 * <p>
 * OBT考试系统请求返回结果枚举(OBT)
 * </p>
 *
 * @author huangyh
 * @since 2021-08-02
 */
@Getter
public enum OBTResultEnum {

    /**
     * 注册考场信息
     */
    REGISTER_ROOM_SUCCESS(0, "注册成功"),
    REGISTER_ROOM_REGISTERED(2, "考场已经被注册"),
    REGISTER_ROOM_NOT_FOUND(3, "未找到相应考场，注册失败"),
    REGISTER_ROOM_EXCEPTION(4, "程序异常"),

    /**
     * 通过考点或考场编码查询考点或考场注册信息
     */
    GET_REGISTER_INFO_FOUND(0, "找到考点或考场信息"),
    GET_REGISTER_INFO_NOT_FOUND(1, "未找到考点或考场信息"),

    /**
     * 获取已启用的考试项目列表
     */
    GET_EXAM_TASK_LIST_SUCCESS(0, "获取已启用的考试项目列表成功"),
    GET_EXAM_TASK_LIST_FAILED(1, "获取已启用的考试项目列表失败"),

    /**
     * 根据考点编号得到其下的考试批次及考场信息
     */
    GET_TIME_BY_PLACE_VALID_FAILED(1001, "注册码验证失败"),
    GET_TIME_BY_PLACE_FAILED_TO_GOT(1002, "获取批次失败"),
    GET_TIME_BY_PLACE_TIME_TYPE_FORMAL(1, "正式批次"),
    GET_TIME_BY_PLACE_TIME_TYPE_MOCK(2, "模拟批次"),

    /**
     * 获取考场考务数据包
     */
    GET_ROOM_PACKAGE_SUCCESS(0, "获取考场考务数据包成功"),
    GET_ROOM_PACKAGE_WITHOUT(1, "未有考务包"),
    GET_ROOM_PACKAGE_HAVE_GOT(2, "已获取过数据"),
    GET_ROOM_PACKAGE_OVERDUE(3, "不在考试数据包下载有效期范围内，获取失败"),

    /**
     * 考务包状态
     */
    ROOM_PACKAGE_USABLE(0, "可以下载"),
    ROOM_PACKAGE_UNUSABLE(1, "不可以下载"),
    ROOM_PACKAGE_HAVE_GOT(2, "已经下载过"),

    /**
     * 考务包下载成功后更新考务包下载状态
     */
    UPDATE_ROOM_PACKAGE_STATE_SUCCESS(1, "更新考务包下载状态成功"),
    UPDATE_ROOM_PACKAGE_STATE_FAILED(2, "更新考务包下载状态失败"),

    /**
     * 下载基础包
     */
    GET_BASE_PACKAGE_CAN_DOWNLOAD(1, "可以下载"),
    GET_BASE_PACKAGE_DOWNLOADED(2, "已下载过"),
    GET_BASE_PACKAGE_INVALID(3, "不在基础包有效期范围内，不能下载"),
    GET_BASE_PACKAGE_OTHER(4, "下载考试协议其他错误"),

    /**
     * 获取试卷包
     */
    GET_PAPER_DATA_SUCCESS(0, "获取试卷包成功"),
    GET_PAPER_DATA_WITHOUT(1, "未有试卷包，获取失败"),
    GET_PAPER_DATA_DOWNLOADED(2, "已获取过数据"),
    GET_PAPER_DATA_INVALID(3, "不在试卷包下载有效期范围内，获取失败"),

    /**
     * 试卷包下载成功后更新试卷包下载状态
     */
    UPDATE_PAPER_DATA_STATE_SUCCESS(1, "试卷包下载成功后更新试卷包下载状态成功"),
    UPDATE_PAPER_DATA_STATE_FAILED(2, "试卷包下载成功后更新试卷包下载状态失败"),

    /**
     * 获取试卷授权码
     */
    GET_PAPER_AUTHORIZATION_CODE_SUCCESS(0, "获取试卷授权码成功"),
    GET_PAPER_AUTHORIZATION_CODE_WITHOUT(1, "未有试卷授权码，获取失败"),
    GET_PAPER_AUTHORIZATION_CODE_DOWNLOADED(2, "已获取过数据"),
    GET_PAPER_AUTHORIZATION_CODE_INVALID(3, "不在试卷授权码下载有效期范围内，获取失败"),
    GET_PAPER_AUTHORIZATION_CODE_DELETED(4, "原试卷在考务中已被删除，不能再下载试卷授权码"),
    GET_PAPER_AUTHORIZATION_CODE_PARTIAL_DELETED(5, "当多份试卷时，其中有部份试卷已被删除，则只返回没有被删除的试卷，已被删除的返回5"),

    /**
     * 获取试卷授权码成功后通知考务更新试卷授权码状态
     */
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_SUCCESS(1, "获取试卷授权码成功后通知考务更新试卷授权码状态成功"),

    /**
     * 更新基础包文件下载状态
     */
    UPDATE_BASE_DATA_STATE_SUCCESS(1, "更新基础包文件下载状态成功"),
    UPDATE_BASE_DATA_STATE_FAILED(2, "更新基础包文件下载状态失败"),

    /**
     * 获取考场重考考务数据包
     */
    GET_RESIT_ROOM_PACKAGE_SUCCESS(0, "获取考场重考考务数据包成功"),
    GET_RESIT_ROOM_PACKAGE_WITHOUT(1, "未有重考考务包"),
    GET_RESIT_ROOM_PACKAGE_DOWNLOADED(2, "已获取过重考考务包"),
    GET_RESIT_ROOM_PACKAGE_INVALID(3, "不在考试数据包下载有效期范围内，获取失败"),

    /**
     * 上传模拟测试报告
     */
    UPLOAD_TEST_REPORT_SUCCESS(1, "上传模拟测试报告成功"),
    UPLOAD_TEST_REPORT_FAILED(2, "上传模拟测试报告失败"),

    /**
     * 上传封场信息
     */
    UPDATE_CLOSURE_SUCCESS(1, "上传封场信息成功"),
    UPDATE_CLOSURE_FAILED(2, "上传封场信息失败"),

    /**
     * 获取考生信息(在线添加考生)
     */
    GET_CANDIDATE_INFO_SUCCESS(0, "获取考生信息(在线添加考生)成功"),
    GET_CANDIDATE_INFO_NOT_FOUND(1, "未找到考生信息"),
    GET_CANDIDATE_INFO_NOT_CURRENT_PLACE(2, "考生不是本考点考生，无法转移"),
    GET_CANDIDATE_INFO_NOT_CURRENT_TIME(3, "考生不是本批次考生，无法转移"),
    GET_CANDIDATE_INFO_IS_CURRENT_ROOM(4, "本考场考生，无需转移"),
    GET_CANDIDATE_INFO_EXCEPTION(-1, "异常"),
    GET_CANDIDATE_INFO_EXAM_TYPE(1, "适用批次类型"),

    /**
     * 校验是否可以上传考试结果，并获取上传路径
     */
    GET_RESULT_UPLOAD_PATH_SUCCESS(1, "可以上传"),
    GET_RESULT_UPLOAD_PATH_UPLOADED(2, "已上传过"),
    GET_RESULT_UPLOAD_PATH_INVALID(3, "不在考试结果上传有效期范围内，不能上传"),
    GET_RESULT_UPLOAD_PATH_OTHER(4, "其他"),

    /**
     * 上传考试结果成功后通知考务更新上传状态
     */
    UPDATE_RESULT_STATE_SUCCESS(1, "上传考试结果成功后通知考务更新上传状态成功"),
    UPDATE_RESULT_STATE_FAILED(2, "上传考试结果成功后通知考务更新上传状态失败"),

    /**
     * 获取已启用的考试项目编号
     */
    GET_TASK_CODE_FAILED(-1, "获取已启用的考试项目编号失败"),

    /**
     * 上报考场考试过程操作数据状态
     */
    UPDATE_EXAM_MONITOR_SUCCESS(1, "上报考场考试过程操作数据状态成功"),
    UPDATE_EXAM_MONITOR_FAILED(2, "上报考场考试过程操作数据状态失败"),

    ;

    private final int result;
    private final String remark;

    OBTResultEnum(int result, String remark) {
        this.result = result;
        this.remark = remark;
    }

}
